package com.ttx.ch06;

import com.ttx.ch04.Dish;

import java.util.ArrayList;
import java.util.List;

import static java.util.stream.Collectors.toList;

/**
 * @author tantexian, <my.oschina.net/tantexian>
 * @since 2017/9/20
 */
public class MyCollectorTest {
    private static List<Dish> dishs = null;

    static {
        dishs = Dish.getDishs();
    }

    public static void main(String[] args) {
        System.out.println("1--------------");
        test1();
        System.out.println("2--------------");
        test2();
        System.out.println("3--------------");
        test3();
    }

    private static void test1() {
        // 此处用的静态工厂方法
        dishs.stream().collect(toList()).forEach(System.out::println);
    }

    private static void test2() {
        dishs.stream().collect(new MyCollector<Dish>()).forEach(System.out::println);
    }

    private static void test3() {
        // 直接使用构造器，第一个参数为供应源，第二参数为累加器，第三个参数为组合源
        dishs.stream().collect(ArrayList::new, List::add, List::addAll).forEach(System.out::println);
    }
}
